レプリケーションはTimesTenトランザクション・ログを使用して、サブスクライバ・サイトに送信する必要がある情報を保持します。サブスクライバ・データ・ストアとの通信が中断された場合、またはサブスクライバ・サイトが停止した場合、ログ・データが累積します。この項で説明する問合せの出力の一部から、各サブスクライバ・データ・ストアのために累積されたログ・データの量、各サブスクライバ・データ・ストアとの通信に最後に成功してから経過した時間を確認できます。
サブスクライバ・データ・ストアに関する情報を表示できます。
マスター・データ・ストアのサブスクライバに関する情報をコマンドラインから表示するには、-receiver -listオプションを指定してttRepAdminユーティリティを使用します。
この例では、「複数サブスクライバ・スキーム」で説明されているサブスクライバの出力を示します。
> ttRepAdmin -dsn masterds -receiver -list Peer name Host name Port State Proto ---------------- ------------------------ ------ ------- ----- subscriber1ds server2 Auto Start 10 Last Msg Sent Last Msg Recv Latency TPS RecordsPS Logs ------------- ------------- ------- ------- --------- ---- 0:01:12 - 19.41 5 52 2 Peer name Host name Port State Proto ---------------- ------------------------ ------ ------- ----- subscriber2ds server3 Auto Start 10 Last Msg Sent Last Msg Recv Latency TPS RecordsPS Logs ------------- ------------- ------- ------- --------- ---- 0:01:04 - 20.94 4 48 2最初の行には、サブスクライバの定義が表示されます。その次の行には、このサブスクライバのために保持されているログ・ファイルの数とともに、待機時間および速度の情報が表示されます。各フィールドについては、例5.10を参照してください。
TTREP.REPLICATIONS表に指定したスキームが複数ある場合は、-schemeオプションを使用して、表示するスキームを指定する必要があります。そうしない場合、次のエラーを受信します。
Must specify -scheme to identify which replication scheme to use最新のトラブルシューティング情報については、http://www.oracle.com/technology/documentation/timesten_doc.htmlにある『Oracle TimesTen In-Memory Databaseトラブルシューティング・プロシージャ・ガイド』のレプリケーションのトラブルシューティングに関する章を参照してください。
ttReplicationStatusプロシージャを使用して、特定のレプリケーション・データ・ストアのより詳細なステータスをプログラムから取得できます。
ttReplicationStatus使用して、マスター・データ・ストアに関するsubscriberdsデータ・ストアのレプリケーション・ステータスを取得します。マスター・データ・ストアから、次のように入力します。
> ttIsql masterds Command> CALL ttReplicationStatus ('subscriberds'); < subscriberds, myhost, 0, start, 1, 152959, repscheme, repl> 1 row found.出力フィールドについては、例5.9を参照してください。
SQLExecDirect関数内でttReplicationStatusをコールして、subscriberdsデータ・ストアのレプリケーション・ステータスを取得することもできます。
#define STATUS_LEN 30 UCHAR status[STATUS_LEN]; rc = SQLExecDirect( hstmt, (SQLCHAR *) "CALL ttReplicationStatus ('subscriberds')", SQL_NTS ); if (rc == SQL_SUCCESS) { SQLBindCol(hstmt, 4, SQL_C_CHAR, status, STATUS_LEN, &cbStat); }次の表に、返される行の列を示します。
列 説明 Subscriber name サブスクライバ・データ・ストアの名前。 Host name サブスクライバをホスティングするマシンの名前。 Port マスターからの更新を受信するサブスクライバ・エージェントで使用されるTCP/IPポート。値が0(ゼロ)の場合は、レプリケーションでポートが自動的に割り当てられたことを示します。 State マスター・データ・ストアに対するサブスクライバの現在の状態(詳細は、「サブスクライバのレプリケーション状態の設定」を参照)。 Logs マスター・データ・ストアがこのサブスクライバのために保持しているログ・ファイルの数。 Last Msg Sent マスターがサブスクライバに最後にメッセージを送信してから経過した時間(秒)。これには、データ・ストア間で送信されたハートビート・メッセージが含まれることに注意してください。 Replication scheme name 使用するレプリケーション・スキームの名前。 Owner name レプリケーション・スキームの所有者の名前。
マスターのサブスクライバに関する情報をプログラムから取得するには、次のSQL SELECT文を使用して、TTREP.REPPEERS、TTREP.TTSTORES、およびSYS.MONITOR表を問い合せます。
SELECT t1.tt_store_name, t1.host_name, t1.rep_port_number, p.state, p.protocol, p.timesend, p.timerecv, p.latency, p.tps, p.recspersec, t3.last_log_file - p.sendlsnhigh + 1 FROM ttrep.reppeers p, ttrep.ttstores t1, ttrep.ttstores t2, sys.monitor t3 WHERE p.tt_store_id = t2.tt_store_id AND t2.is_local_store = 0X01 AND p.subscriber_id = t1.tt_store_id AND p.replication_name = 'repscheme' AND p.replication_owner = 'repl' AND (p.state = 0 OR p.state = 1);
次に、前述のSELECT文の出力例を示します。
< subscriber1ds, server2, 0, 0, 7, 1003941635, 0, -1.00000000000000, -1, -1, 1 > < subscriber2ds, server3, 0, 0, 7, 1003941635, 0, -1.00000000000000, -1, -1, 1 >ttRepAdminユーティリティまたはSQL SELECT文の出力には、次のフィールドが含まれます。
フィールド
|
説明
|
---|---|
Peer name
|
サブスクライバ・データ・ストアの名前。
|
Host name
|
サブスクライバをホスティングするマシンの名前。
|
Port
|
マスターからの更新を受信するサブスクライバ・エージェントで使用されるTCP/IPポート。値が0(ゼロ)の場合は、レプリケーションでポートが自動的に割り当てられたことを示します。
|
State
|
マスター・データ・ストアに対するサブスクライバの現在のレプリケーション状態(詳細は、「サブスクライバのレプリケーション状態の設定」を参照)。
|
Proto
|
このマスターとマスターに対応するサブスクライバ間で通信するレプリケーションで使用される内部プロトコル。この値は無視できます。
|
Last Msg Sent
|
マスターがサブスクライバに最後にメッセージを送信してから経過した時間(秒)。これには、データ・ストア間で送信されたハートビート・メッセージが含まれることに注意してください。
|
Last Msg Recv
|
このサブスクライバがマスターから最後のメッセージを受信してから経過した時間(秒)。
|
Latency
|
マスターがメッセージを送信してからサブスクライバから最後の確認応答を受信するまでの平均待機時間(秒)。(「注意」を参照。)
|
TPS
|
マスターでコミットされ、サブスクライバで処理される、1秒当たりの平均トランザクション数。(「注意」を参照。)
|
RecordsPS
|
1秒当たりに送信される平均レコード数。(「注意」を参照。)
|
Logs
|
マスター・データ・ストアがサブスクライバのために保持しているログ・ファイルの数。
|